﻿using System;
using System.IO;

namespace Holdem.Interfaces.Configuration
{
	public interface IHoldemIsolatedStorageFile : IDisposable
	{
		long Quota
		{
			get;
		}

		long AvailableFreeSpace
		{
			get;
		}

		void Remove();

		bool IncreaseQuotaTo(long newQuotaSize);

		void DeleteFile(string file);

		bool FileExists(string path);

		bool DirectoryExists(string path);

		void CreateDirectory(string dir);

		void DeleteDirectory(string dir);

		string[] GetFileNames();

		string[] GetFileNames(string searchPattern);

		string[] GetDirectoryNames();

		string[] GetDirectoryNames(string searchPattern);

		IHoldemIsolatedStorageFileStream OpenFile(string path, FileMode mode);
		IHoldemIsolatedStorageFileStream OpenFile(string path, FileMode mode, FileAccess access);
		IHoldemIsolatedStorageFileStream OpenFile(string path, FileMode mode, FileAccess access, FileShare share);
		IHoldemIsolatedStorageFileStream CreateFile(string path);

		IHoldemIsolatedStorageFile GetUserStoreForApplication();
	}
}
